home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / PowerPlant / AGA Classes 1.2 / Utilities / LAGAEmbossedView.cp < prev    next >
Text File  |  1996-06-30  |  4KB  |  99 lines

  1. // ===========================================================================
  2. //    LAGAEmbossedView.cp
  3. // ===========================================================================
  4. //    “Apple Grayscale Appearance” compliant Embossed view
  5. //    Copyright © 1996 Chrisoft (Christophe ANDRES)  All rights reserved.
  6. //
  7. //    You may use this source code in any application (commercial, shareware, freeware,
  8. //    postcardware, etc), but not remove this notice (no need to acknowledge the use of
  9. //    this class in the about box)
  10. //    You may not sell this source code in any form. This source code may be placed on 
  11. //    publicly accessable archive sites and source code disks. It may not be placed on 
  12. //    profit archive sites and source code disks without the permission of the author, 
  13. //    Christophe ANDRES.
  14. //    
  15. //        This source code is distributed in the hope that it will be useful,
  16. //        but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. //        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  18. //
  19. //    If you make any change or improvement on this class, please send the improved/changed
  20. //    version to : chrisoft@calva.net or Christophe ANDRES
  21. //                                     20, rue Prosper Mérimée
  22. //                                     67100 STRASBOURG
  23. //                                     FRANCE
  24. //
  25. // ===========================================================================
  26. //    LAGAEmbossedView.h            <- double-click + Command-D to see class declaration
  27. //
  28. //    LAGAEmbossedView is my implementation of the “Apple Grayscale Appearance for System 7.5”
  29. //        Embossed view. This view performs a 3D effect similar to the one obtained with the 
  30. //        LAGASecondaryGroupBox without a title. This class exists mainly for historical reasons
  31. //        and as it is a view and not only a Pane, it can contain other Panes
  32. //
  33. //        This class requires AGAColors.cp to be present in your project
  34. //
  35. //        Version : 1.2
  36. //
  37. //        Change History (most recent first, date in US form : mm/dd/yy):
  38. //
  39. //                        06/30/96    ca        Public release of version 1.2
  40. //                        06/05/96    ca        Added RegisterClass method to ease registry
  41. //                                                        Increased version to 1.2
  42. //                        05/17/96    ca        Increased version to 1.1
  43. //                                                        Added PaneInColor test
  44. //                                                        Added change history
  45. //                        04/22/96    ca        class made available by Christophe ANDRES <chrisoft@calva.net>
  46. //                                                        (version 1.0)
  47. //
  48. //        To Do:
  49. //
  50.  
  51. #include "LAGAEmbossedView.h"
  52. #include "AGAColors.h"
  53.  
  54. //    begin    <06/05/96    ca>
  55. void LAGAEmbossedView::RegisterClass ()
  56.  
  57. {
  58.     URegistrar::RegisterClass(LAGAEmbossedView::class_ID, (ClassCreatorFunc)LAGAEmbossedView::CreateAGAEmbossedViewStream);
  59. }
  60. //    end    <06/05/96    ca>
  61.  
  62. LAGAEmbossedView* LAGAEmbossedView::CreateAGAEmbossedViewStream (LStream* inStream)
  63.  
  64. {
  65.     return (new LAGAEmbossedView(inStream));
  66. }
  67.  
  68. //-------Constructors-------------------------------------------------------------------------------------------------
  69.  
  70. LAGAEmbossedView::LAGAEmbossedView (LStream *inStream) : LView(inStream)
  71.  
  72. {
  73. }
  74.  
  75. //-------Drawers----------------------------------------------------------------------------------------------------
  76.  
  77. void LAGAEmbossedView::DrawSelf ()
  78.  
  79. {
  80.     StColorPenState theState;
  81.     Rect workRect;
  82.     
  83.     PenNormal();
  84.     CalcLocalFrameRect(workRect);
  85.     workRect.bottom--;
  86.     workRect.right--;
  87.     
  88.     if (::PaneInColor(this))
  89.         ::RGBForeColor(&gAGAColorArray[8]);
  90.     ::MoveTo(workRect.left, workRect.bottom);
  91.     ::LineTo(workRect.left, workRect.top);
  92.     ::LineTo(workRect.right, workRect.top);
  93.     ::ForeColor(whiteColor);
  94.     ::MoveTo(workRect.left + 1, workRect.bottom);
  95.     ::LineTo(workRect.right, workRect.bottom);
  96.     ::LineTo(workRect.right, workRect.top + 1);
  97. }
  98.  
  99.